home *** CD-ROM | disk | FTP | other *** search
- body_depth = vector(0,0,0.25);
-
- corner1 = cbezier(
- list( ctlpt(e3,-0.75,0,0),
- ctlpt(e3,-0.75,0.495,0),
- ctlpt(e3,-0.75,0.5,0),
- ctlpt(e3,-0.745,0.5,0),
- ctlpt(e3,0,0.5,0)
- ) );
- corner3 = corner1 * rotx(180);
-
- corner4 = cbezier(
- list( ctlpt(e3,0,0.5,0),
- ctlpt(e3,0.745,0.5,0),
- ctlpt(e3,0.75,0.5,0),
- ctlpt(e3,0.75,0.495,0),
- ctlpt(e3,0.75,0,0)
- ) );
- corner2 = corner4 * rotx(180);
-
- side1 = boolsum( corner1,corner2,corner3,corner4 );
- side2 = side1 * trans(body_depth);
-
- border1 = extrude( corner1,body_depth );
- border2 = extrude( corner2,body_depth );
- border3 = extrude( corner3,body_depth );
- border4 = extrude( corner4,body_depth );
-
- view( list( border1,border2,border3,border4 ),on );
- view( list( side1,side2 ),off );
-
- ribbon = cbspline( 3, list(
- ctlpt(e3, -0.75, 0.25, 0.075),
- ctlpt(e3, -0.82, 0.5, 0.075),
- ctlpt(e3, -0.6, 0.95, 0.075),
- ctlpt(e3, -0.45, 1.1, 0.075),
- ctlpt(e3, -0.3, 1.23, 0.075),
- ctlpt(e3, 0, 1.25, 0.075),
- ctlpt(e3, 0.15, 1.3, 0.075),
- ctlpt(e3, 0.3, 1.16, 0.075),
- ctlpt(e3, 0.45, 1.18, 0.075),
- ctlpt(e3, 0.6, 0.98, 0.075),
- ctlpt(e3, 0.82, 0.5, 0.075),
- ctlpt(e3, 0.75, 0.25, 0.075)),
- list ( kv_open ));
- ribbon = extrude(ribbon,vector(0,0,0.1));
- view(ribbon,off);
-
- free(ribbon);
- free(side1);
- free(side2);
- free(corner1);
- free(corner2);
- free(corner3);
- free(corner4);
-
- section = cbezier(list( ctlpt(e3, 0.25, 0, 0),
- ctlpt(e3, 0.275, 0, -0.015),
- ctlpt(e3, 0.3, 0, 0),
- ctlpt(e3, 0.275, 0, 0.015)));
- handle = surfrev( section );
-
- handle = sdivide( handle, COL, 2.0);
- handle = nth(handle, 1);
-
- handle = handle * trans(vector(0, 0.45, 0));
- view(list(handle, handle*trans(body_depth)),off);
-
- free( section );
- free( handle );
-
- c1 = cbezier(list(ctlpt(e3, 0.6, -0.45, 0 ),
- ctlpt(e3, 0.6, -0.1, 0 ),
- ctlpt(e3, 0.6, 0.2, 0 )));
-
- c3 = cbezier(list(ctlpt(e3, 0.6, -0.45, 0 ),
- ctlpt(e3, 0.6, -0.2, -0.07 ),
- ctlpt(e3, 0.6, 0.2, -0.1 )));
-
- c2 = cbezier(list(ctlpt(e3, 0.6, 0.2, -0.1 ),
- ctlpt(e3, 0.6, 0.2, -0.025 ),
- ctlpt(e3, 0.6, 0.2, -0.05 )));
-
- c4 = cbezier(list(ctlpt(e3, 0.6, 0.2, 0 ),
- ctlpt(e3, 0.6, 0.2, -0.025 ),
- ctlpt(e3, 0.6, 0.2, -0.05 )));
-
- side1a = boolsum(c1,c2,c3,c4);
- side2a = side1a * trans(vector(-1.2,0,0));
- back = extrude(c3,vector(-1.2,0,0));
-
- cover = cbezier(list( ctlpt(e3, 0.6, 0.2, 0 ),
- ctlpt(e3, 0.6, 0.3, -0.07),
- ctlpt(e3, 0.6, 0.225, -0.15),
- ctlpt(e3, 0.6, -0.1, -0.11)));
- cover = extrude(cover,vector(-1.2,0,0));
- #cover = gpolygon(cover, on);
- attrib(back,"rgb","0,255,0");
- attrib(cover,"rgb","255,255,255");
- view(list(side1a,side2a,back,cover),off);
-
-
-